package com.ATM;

import java.util.ArrayList;
import java.util.Scanner;

/*
定义一个ATM类，用来代表ATM系统，负责提供所有的业务需求，比如：展示ATM的系统欢迎页、开通帐户、转账……
*/
public class ATM {
    //列表存放Account数据
    ArrayList<Account> accounts = new ArrayList<>();
    Scanner sc = new Scanner(System.in);
    Account loginAcc;

    public void start() {
        System.out.println("=====欢迎进入黑马银行ATM系统=====");
        System.out.println("1、用户登录");
        System.out.println("2.用户开户");
        System.out.println("请输入您的操作命令：");
        int command = sc.nextInt();
        switch (command) {
            case 1:
                //用户登录
                login();
                break;
            case 2:
                //用户开户
                break;
        }
    }

    //功能1用户登录功能
    public void login() {
        if (accounts.size() == 0) {
            System.out.println("系统还没有账号，去注册一个账号吧！");
            return;
        } else {
            while (true) {
                System.out.println("请输入您的账号：");
                String carId = sc.next();
                //遍历所有的列表数据
                for (int i = 0; i < accounts.size(); i++) {
                    //调用方法返回的是一个账户
                    Account acc = getAccountCardById(carId);
                    if (acc == null) {
                        System.out.println("该账号不存在！");
                    } else {
                        System.out.println("请输入您的密码：");
                        String password = sc.next();
                        if (acc.getPassword().equals(password)) {
                            //获取成功登录的用户
                            loginAcc = acc;
                            System.out.println("恭喜" + acc.getUserName() + "成功登录系统,您的账号为" + acc.getCarId());
                            //调用登录成功的方法
                            return;
                        } else {
                            System.out.println("密码不正确！");
                        }
                    }
                }
            }
        }
    }

    //功能2注册账号
    public void creatAccount() {
        //创建账户的对象
        Account acc = new Account();
        System.out.println("===请输入以下账户信息===");
        System.out.println("请输入您的账户信息：");
        String name = sc.next();
        acc.setUserName(name);
        //设置性别
        while (true) {
            System.out.println("请输入您的性别：");
            char sex = sc.next().charAt(0);
            if (sex == '男' || sex == '女') {
                acc.setSex(sex);
                break;
            } else {
                System.out.println("请输入男或女!");
            }
        }
        //设置密码
        while (true) {
            System.out.println("请输入密码");
            String password=sc.next();
            System.out.println("请输入确认密码：");
            String repassword=sc.next();
            if (password.equals(repassword)){
                acc.setPassword(password);
                break;
            }else {
                System.out.println("两次密码不一致，请重新设置：");

            }
        }
        //设置取现额度
        System.out.println("请输入取现额度：");
//        double limit=
    }



    //用来判断卡号是否存在
    public Account getAccountCardById(String carId) {
        for (int i = 0; i < accounts.size(); i++) {
            Account acc = accounts.get(i);
            if (acc.getCarId().equals(carId)) {
                return acc;
            }
        }
        return null;
    }
}
